package com.open.account.interfaces.controller;


import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.github.xiaoymin.knife4j.annotations.ApiSort;
import com.open.account.interfaces.dto.*;
import com.open.account.interfaces.param.OssUrlReq;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;
import java.util.List;


@Api(value = "开户公共接口", tags = "开户公共接口")
@ApiSort(value = 3)
@RestController
@RequestMapping(path = "/open-account-common")
public class OpenAccountCommonController {

    @ApiOperation(value = "获取所有的账户类型", notes = "获取所有的账户类型")
    @ApiOperationSupport(order = 1)
    @PostMapping("accountTypes/v1")
    public Result<List<AccountType>> accountTypes(@RequestHeader("User-Session") String userSession) {
        return Result.success(new ArrayList<>());
    }

    @ApiOperation(value = "获取所有的交易市场类型", notes = "获取所有的交易市场类型")
    @ApiOperationSupport(order = 2)
    @PostMapping("marketTypes/v1")
    public Result<List<MarketType>> marketTypes(@RequestHeader("User-Session") String userSession) {
        return Result.success(new ArrayList<>());
    }


    @ApiOperation(value = "请求一个oss文件服务器文件路径，让前端上传文件到指定位置", notes = "请求一个oss文件服务器文件路径，让前端上传文件到指定位置")
    @ApiOperationSupport(order = 3)
    @PostMapping("getOssPath/v1")
    public Result<OssUrlRespDto> getOssPath(@RequestBody @Validated OssUrlReq ossUrlReq, @RequestHeader("User-Session") String userSession) {
        return Result.success(new OssUrlRespDto());
    }

    @ApiOperation(value = "获取所有的开户进度信息", notes = "获取所有的开户进度信息")
    @ApiOperationSupport(order = 4)
    @PostMapping("openStatuses/v1")
    public Result<List<OpenStatusTypeRespDto>> openStatuses(@RequestHeader("User-Session") String userSession) {
        return Result.success(new ArrayList<>());
    }

    @ApiOperation(value = "获取所有的开户阶段信息", notes = "获取所有的开户阶段信息")
    @ApiOperationSupport(order = 5)
    @PostMapping("openAccountFlowPhase/v1")
    public Result<List<OpenAccountFlowPhaseTypeRespDto>> openAccountFlowPhase(@RequestHeader("User-Session") String userSession) {
        return Result.success(new ArrayList<>());
    }

    @ApiOperation(value = "获取地区信息，国家，省市，城市", notes = "获取地区信息，国家，省市，城市")
    @ApiOperationSupport(order = 6)
    @PostMapping("areaInfos/v1")
    public Result<List<Country>> areaInfos(@RequestHeader("User-Session") String userSession) {
        return Result.success(new ArrayList<>());
    }
    @ApiOperation(value = "多语言字段信息，支持中文简体，繁体，英文", notes = "多语言字段信息，支持中文简体，繁体，英文")
    @ApiOperationSupport(order = 7)
    @PostMapping("multipleLanguages/v1")
    public Result<List<MultipleLanguageRespDto>> multipleLanguages(@RequestHeader("User-Session") String userSession) {
        return Result.success(new ArrayList<>());
    }
}
